package bolao.dominio;

import bolao.dominio.seguranca.Usuario;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author frederico.cruz
 */
@Entity
@Table(name = "APOSTA")
@NamedQueries({@NamedQuery(name = "Aposta.findAll", query = "SELECT a FROM Aposta a"),
    @NamedQuery(name = "Aposta.findByIdAposta", query = "SELECT a FROM Aposta a WHERE a.idAposta = :idAposta")})
public class Aposta implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Basic(optional = false)
    @Column(name = "ID_APOSTA")
    private Integer idAposta;
    @Column(name = "gols_time1")
    private Integer golsTime1;
    @Column(name = "gols_time2")
    private Integer golsTime2;
    @Column(name = "resultado")
    private Integer resultado;
    @Column(name = "pontos")
    private Integer pontos;
    @Column(name = "bloqueado")
    private boolean bloqueado;
    @JoinColumn(name = "fk_jogo", referencedColumnName = "id_jogo")
    @ManyToOne(optional = false)
    private Jogo fkJogo;
    @JoinColumn(name = "fk_usuario", referencedColumnName = "ID")
    @ManyToOne(optional = false)
    private Usuario fkUsuario;

    public Aposta() {
    }

    public Aposta(Integer idAposta) {
        this.idAposta = idAposta;
    }

    public Integer getIdAposta() {
        return idAposta;
    }

    public void setIdAposta(Integer idAposta) {
        this.idAposta = idAposta;
    }

    public Integer getPontos() {
        return pontos;
    }

    public void setPontos(Integer pontos) {
        this.pontos = pontos;
    }

    public Integer getResultado() {
        return resultado;
    }

    public void setResultado(Integer resultado) {
        this.resultado = resultado;
    }

    public Integer getGolsTime1() {
        return golsTime1;
    }

    public void setGolsTime1(Integer golsTime1) {
        this.golsTime1 = golsTime1;
    }

    public Integer getGolsTime2() {
        return golsTime2;
    }

    public void setGolsTime2(Integer golsTime2) {
        this.golsTime2 = golsTime2;
    }

    public boolean isBloqueado() {
        return bloqueado;
    }

    public void setBloqueado(boolean bloqueado) {
        this.bloqueado = bloqueado;
    }

    public Jogo getFkJogo() {
        return fkJogo;
    }

    public void setFkJogo(Jogo fkJogo) {
        this.fkJogo = fkJogo;
    }

    public Usuario getFkUsuario() {
        return fkUsuario;
    }

    public void setFkUsuario(Usuario fkUsuario) {
        this.fkUsuario = fkUsuario;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idAposta != null ? idAposta.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Aposta)) {
            return false;
        }
        Aposta other = (Aposta) object;
        if ((this.idAposta == null && other.idAposta != null) || (this.idAposta != null && !this.idAposta.equals(other.idAposta))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "model.Aposta[idAposta=" + idAposta + "]";
    }
}
